
union.o:     file format elf32-littlearm


Disassembly of section .text:

00000000 <main>:
    }bit;
    unsigned char b8;
}dac_power_ctrl;

int main()
{
   0:	e92d4800 	push	{fp, lr}
   4:	e28db004 	add	fp, sp, #4
   8:	e24dd008 	sub	sp, sp, #8
	union test tt;

	printf("tt sizeof = %d\n\n", sizeof(union test));	// 8
   c:	e3a01004 	mov	r1, #4
  10:	e59f017c 	ldr	r0, [pc, #380]	; 194 <main+0x194>
  14:	ebfffffe 	bl	0 <printf>
	
	tt.a = 'a';
  18:	e3a03061 	mov	r3, #97	; 0x61
  1c:	e54b3008 	strb	r3, [fp, #-8]
	printf("%c\n", tt.a);			// a
  20:	e55b3008 	ldrb	r3, [fp, #-8]
  24:	e1a01003 	mov	r1, r3
  28:	e59f0168 	ldr	r0, [pc, #360]	; 198 <main+0x198>
  2c:	ebfffffe 	bl	0 <printf>
	printf("%c\n", tt.b);			// a
  30:	e51b3008 	ldr	r3, [fp, #-8]
  34:	e1a01003 	mov	r1, r3
  38:	e59f0158 	ldr	r0, [pc, #344]	; 198 <main+0x198>
  3c:	ebfffffe 	bl	0 <printf>
	printf("%c\n", (int)tt.c);		// a
  40:	e51b3008 	ldr	r3, [fp, #-8]
  44:	e1a01003 	mov	r1, r3
  48:	e59f0148 	ldr	r0, [pc, #328]	; 198 <main+0x198>
  4c:	ebfffffe 	bl	0 <printf>
	printf("union = %c\n\n", tt);	// a
  50:	e51b1008 	ldr	r1, [fp, #-8]
  54:	e59f0140 	ldr	r0, [pc, #320]	; 19c <main+0x19c>
  58:	ebfffffe 	bl	0 <printf>
	
	tt.b = 100;
  5c:	e3a03064 	mov	r3, #100	; 0x64
  60:	e50b3008 	str	r3, [fp, #-8]
	printf("%d\n", tt.a);			// 100
  64:	e55b3008 	ldrb	r3, [fp, #-8]
  68:	e1a01003 	mov	r1, r3
  6c:	e59f012c 	ldr	r0, [pc, #300]	; 1a0 <main+0x1a0>
  70:	ebfffffe 	bl	0 <printf>
	printf("%d\n", tt.b);			// 100
  74:	e51b3008 	ldr	r3, [fp, #-8]
  78:	e1a01003 	mov	r1, r3
  7c:	e59f011c 	ldr	r0, [pc, #284]	; 1a0 <main+0x1a0>
  80:	ebfffffe 	bl	0 <printf>
	printf("%d\n", (int)tt.c);		// 100
  84:	e51b3008 	ldr	r3, [fp, #-8]
  88:	e1a01003 	mov	r1, r3
  8c:	e59f010c 	ldr	r0, [pc, #268]	; 1a0 <main+0x1a0>
  90:	ebfffffe 	bl	0 <printf>
	printf("union = %d\n\n", tt);	// 100
  94:	e51b1008 	ldr	r1, [fp, #-8]
  98:	e59f0104 	ldr	r0, [pc, #260]	; 1a4 <main+0x1a4>
  9c:	ebfffffe 	bl	0 <printf>
	
	tt.a = 'a';
  a0:	e3a03061 	mov	r3, #97	; 0x61
  a4:	e54b3008 	strb	r3, [fp, #-8]
	printf("%c\n", tt.a);			// a
  a8:	e55b3008 	ldrb	r3, [fp, #-8]
  ac:	e1a01003 	mov	r1, r3
  b0:	e59f00e0 	ldr	r0, [pc, #224]	; 198 <main+0x198>
  b4:	ebfffffe 	bl	0 <printf>
	printf("%c\n", tt.b);			// a
  b8:	e51b3008 	ldr	r3, [fp, #-8]
  bc:	e1a01003 	mov	r1, r3
  c0:	e59f00d0 	ldr	r0, [pc, #208]	; 198 <main+0x198>
  c4:	ebfffffe 	bl	0 <printf>
	printf("%c\n", (int)tt.c);		// a
  c8:	e51b3008 	ldr	r3, [fp, #-8]
  cc:	e1a01003 	mov	r1, r3
  d0:	e59f00c0 	ldr	r0, [pc, #192]	; 198 <main+0x198>
  d4:	ebfffffe 	bl	0 <printf>
	printf("union = %c\n\n", tt);	// a
  d8:	e51b1008 	ldr	r1, [fp, #-8]
  dc:	e59f00b8 	ldr	r0, [pc, #184]	; 19c <main+0x19c>
  e0:	ebfffffe 	bl	0 <printf>
	
	tt.c = 20000;
  e4:	e59f30bc 	ldr	r3, [pc, #188]	; 1a8 <main+0x1a8>
  e8:	e50b3008 	str	r3, [fp, #-8]
	printf("%d\n", (char)tt.a);		// 32
  ec:	e55b3008 	ldrb	r3, [fp, #-8]
  f0:	e1a01003 	mov	r1, r3
  f4:	e59f00a4 	ldr	r0, [pc, #164]	; 1a0 <main+0x1a0>
  f8:	ebfffffe 	bl	0 <printf>
	printf("%d\n", (int)tt.b);		// 20000
  fc:	e51b3008 	ldr	r3, [fp, #-8]
 100:	e1a01003 	mov	r1, r3
 104:	e59f0094 	ldr	r0, [pc, #148]	; 1a0 <main+0x1a0>
 108:	ebfffffe 	bl	0 <printf>
	printf("%ld\n", tt.c);			// 20000
 10c:	e51b3008 	ldr	r3, [fp, #-8]
 110:	e1a01003 	mov	r1, r3
 114:	e59f0090 	ldr	r0, [pc, #144]	; 1ac <main+0x1ac>
 118:	ebfffffe 	bl	0 <printf>
	printf("union = %ld\n\n", tt);	// 20000
 11c:	e51b1008 	ldr	r1, [fp, #-8]
 120:	e59f0088 	ldr	r0, [pc, #136]	; 1b0 <main+0x1b0>
 124:	ebfffffe 	bl	0 <printf>
	
	tt.c = 3000;
 128:	e59f3084 	ldr	r3, [pc, #132]	; 1b4 <main+0x1b4>
 12c:	e50b3008 	str	r3, [fp, #-8]
	printf("%d\n", tt.c);			// 3000
 130:	e51b3008 	ldr	r3, [fp, #-8]
 134:	e1a01003 	mov	r1, r3
 138:	e59f0060 	ldr	r0, [pc, #96]	; 1a0 <main+0x1a0>
 13c:	ebfffffe 	bl	0 <printf>
	tt.a = 'b';
 140:	e3a03062 	mov	r3, #98	; 0x62
 144:	e54b3008 	strb	r3, [fp, #-8]
	printf("%c\n", tt.a);			// b
 148:	e55b3008 	ldrb	r3, [fp, #-8]
 14c:	e1a01003 	mov	r1, r3
 150:	e59f0040 	ldr	r0, [pc, #64]	; 198 <main+0x198>
 154:	ebfffffe 	bl	0 <printf>
	printf("%c\n", tt.c);			// b
 158:	e51b3008 	ldr	r3, [fp, #-8]
 15c:	e1a01003 	mov	r1, r3
 160:	e59f0030 	ldr	r0, [pc, #48]	; 198 <main+0x198>
 164:	ebfffffe 	bl	0 <printf>
	printf("%d\n", tt.c);			// 2914
 168:	e51b3008 	ldr	r3, [fp, #-8]
 16c:	e1a01003 	mov	r1, r3
 170:	e59f0028 	ldr	r0, [pc, #40]	; 1a0 <main+0x1a0>
 174:	ebfffffe 	bl	0 <printf>

	printf("union size : %d\n", sizeof(dac_power_ctrl));	// 1
 178:	e3a01001 	mov	r1, #1
 17c:	e59f0034 	ldr	r0, [pc, #52]	; 1b8 <main+0x1b8>
 180:	ebfffffe 	bl	0 <printf>
	
	return 0;
 184:	e3a03000 	mov	r3, #0
}
 188:	e1a00003 	mov	r0, r3
 18c:	e24bd004 	sub	sp, fp, #4
 190:	e8bd8800 	pop	{fp, pc}
 194:	00000000 	.word	0x00000000
 198:	00000014 	.word	0x00000014
 19c:	00000018 	.word	0x00000018
 1a0:	00000028 	.word	0x00000028
 1a4:	0000002c 	.word	0x0000002c
 1a8:	00004e20 	.word	0x00004e20
 1ac:	0000003c 	.word	0x0000003c
 1b0:	00000044 	.word	0x00000044
 1b4:	00000bb8 	.word	0x00000bb8
 1b8:	00000054 	.word	0x00000054
